#Matheus Januario Lopes de Sousa - exercicio 107.2

#dados e função:

library(MASS)
data(Animals)
plot(brain~body, data=Animals)
anim.m2 <- lm(log(brain)~log(body),data=Animals, subset=!(log(Animals$body)>8&log(Animals$brain)<6))
anim.m0 <- lm(log(brain)~1, data=Animals, subset=!(log(Animals$body)>8&log(Animals$brain)<6))
anova(anim.m0,anim.m2)
anova(anim.m2)



#respostas:
#1. O objetivo do ANOVA é comparar dois modelos. O comando que cria o objeto "anim.m0" cria um modelo nulo, enquanto que o 
#comando que cria o objeto "anim.m2" cria um modelo não-nulo de relação entre as variáveis. Após isso, a linha 
#"anova(anim.m0,anim.m2)" faz um teste ANOVa, comparando estes dois modelos. Quando usamos a linha "anova(anim.m2)" o resultado
#é o mesmo, pois a comparação com um modelo nulo é feita de forma implícita quando damos apenas um modelo para o programa comparar, ou seja:
#caso não seja dado à função "anova" um segundo modelo com o que comparar, a função constrói sozinha um modelo nulo, e o compara com a única 
#função dada.
#A única forma de os comandos darem resultados diferentes seria se déssemos um segundo modelo não-nulo para ser comparado com o primeiro modelo não-nulo.




#2. A linha de comando "mean(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)]))" retira animais cujo corpo é menor que 8 e cujo cérebro é menor que 6,
#além de imprimir a meedia dos valores de cérebro que não foram retirados. A linha de comando "sd(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)]))" 
#retira animais cujo corpo é menor que 8 e cujo cérebro é menor que 6, além de imprimir o desvio padrão dos valores de cérebro que não foram retirados.
#O comando "summary(anim.m0)" retorna os valores de média e desvio padrão dos resíduos gerados pelo modelo nulo ("anim.m0"). Os comandos
#"mean(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)]))", e "sd(log(Animals$brain[!(log(Animals$body)>8&log(Animals$brain)<6)]))" geram o mesmo resultado
(média e desvio padrão, respectivamente).






